CodeMirror.defineMode("changes", function (config, modeConfig) {
    var headerSeperator = /^-+$/;
    var headerLine = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)  ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /;
    var simpleEmail = /^[\w+.-]+@[\w.-]+/;

    return {
        token: function (stream) {
            if (stream.sol()) {
                if (stream.match(headerSeperator)) {
                    return 'tag';
                }
                if (stream.match(headerLine)) {
                    return 'tag';
                }
            }
            if (stream.match(simpleEmail)) {
                return 'string';
            }
            stream.next();
            return null;
        }
    };
});

CodeMirror.defineMIME("text/x-rpm-changes", "changes");
